package com.alibaba.shopping_common.service;

import com.alibaba.shopping_common.pojo.ShoppingUser;

/**
 * 商城用户服务
 */
public interface ShoppingUserService {

    /**
     * 用户点击【获取验证码】按钮时向Redis写入验证码+手机号，
     * 用于用户后续注册时校验
     * @param phone
     * @param checkCode
     */
    void saveRegisterCheckCode(String phone,String checkCode);

    /**
     *  校验用户手机号+验证码是否输入正确，若成功则进入注册页面
     * @param phone
     * @param checkCode
     */
    void registerCheckCode(String phone,String checkCode);

    /**
     * 用户注册
     * @param shoppingUser
     */
    void register(ShoppingUser shoppingUser);

    /**
     * 用户通过账号密码登录
     * @param username
     * @param password
     * @return JWT令牌
     */
    String loginPassword(String username,String password);

    /**
     * 判断当前手机号是否已经注册
     * @param phone
     * @return
     */
    void checkUserRegister(String phone);
    /**
     * 保存登录时的验证码和手机号
     * @param phone
     * @param checkCode
     */
    void saveLoginCheckCode(String phone,String checkCode);

    /**
     * 获取当前用户的用户名
     * @param token
     * @return
     */
    String getName(String token);

    /**
     * 根据ID获取用户
     * @param token
     * @return
     */
    ShoppingUser getLoginUser(String token);

    /**
     * 登录-校验手机号和验证码
     * @param phone
     * @param checkCode
     * @return
     */
    String loginCheckCode(String phone,String checkCode);
}
